package com.cljz.makepassenger.model.net.api;

import com.cljz.makepassenger.base.Constant;
import com.cljz.makepassenger.model.net.bean.About1qBean;
import com.cljz.makepassenger.model.net.bean.ActivityIndexBean;
import com.cljz.makepassenger.model.net.bean.ActivityListBean;
import com.cljz.makepassenger.model.net.bean.ActivityMyBean;
import com.cljz.makepassenger.model.net.bean.AdListBean;
import com.cljz.makepassenger.model.net.bean.ExChangeBean;
import com.cljz.makepassenger.model.net.bean.GetActivityUserinfoBean;
import com.cljz.makepassenger.model.net.bean.GetBillListBean;
import com.cljz.makepassenger.model.net.bean.GetCityBean;
import com.cljz.makepassenger.model.net.bean.GetTypeListBean;
import com.cljz.makepassenger.model.net.bean.GetUserInfoBean;
import com.cljz.makepassenger.model.net.bean.IndexInfoBean;
import com.cljz.makepassenger.model.net.bean.InvitationBean;
import com.cljz.makepassenger.model.net.bean.InviteContentBean;
import com.cljz.makepassenger.model.net.bean.InviteDetailBean;
import com.cljz.makepassenger.model.net.bean.InviteListBean;
import com.cljz.makepassenger.model.net.bean.InviterWarnBean;
import com.cljz.makepassenger.model.net.bean.MemberListBean;
import com.cljz.makepassenger.model.net.bean.MemberLoginSmsBean;
import com.cljz.makepassenger.model.net.bean.NoticeListBean;
import com.cljz.makepassenger.model.net.bean.PublishBean;
import com.cljz.makepassenger.model.net.bean.ResponseBean;
import com.cljz.makepassenger.model.net.bean.SetUserInfoBean;
import com.cljz.makepassenger.model.net.bean.ThirdLoginBean;
import com.cljz.makepassenger.model.net.bean.ThirdLoginBindData;
import com.cljz.makepassenger.model.net.bean.UploadImgBean;
import com.cljz.makepassenger.model.net.bean.UserPointBean;
import com.cljz.makepassenger.model.net.bean.WXPayBean;

import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.POST;
import rx.Observable;

/**
 * Created by apple on 2016/11/23.
 */

public interface ResponseInfoAPI {

    @POST(Constant.SMS_SEND)
    Observable<ResponseBean> getSmsSendData(@Body RequestBody body);

    @POST(Constant.SMS_LOGIN)
    Observable<MemberLoginSmsBean> getSmsLoginData(@Body RequestBody body);

    @POST(Constant.THIRD_LOGIN)
    Observable<ThirdLoginBean> getThirdLoginData(@Body RequestBody body);

    @POST(Constant.THIRD_LOGIN_BIND)
    Observable<ThirdLoginBindData> getThirdLoginBindData(@Body RequestBody body);

    @POST(Constant.AD_LIST)
    Observable<AdListBean> getAdListData(@Body RequestBody body);

    @POST(Constant.INDEX_INFO)
    Observable<IndexInfoBean> getIndexInfoData(@Body RequestBody body);

    @POST(Constant.INVITE_LIST)
    Observable<InviteListBean> getInviteListData(@Body RequestBody body);

    @POST(Constant.MSG_DEL)
    Observable<ResponseBean> getMsgDelData(@Body RequestBody body);

    @POST(Constant.WARN_CANCEL)
    Observable<ResponseBean> getWarnCancelData(@Body RequestBody body);

    @POST(Constant.INVITE_CONTENT)
    Observable<InviteContentBean> getInviteContentData(@Body RequestBody body);

    @POST(Constant.INVITE_UPDATE)
    Observable<ResponseBean> getInviteUpdateData(@Body RequestBody body);

    @POST(Constant.GET_CITY)
    Observable<GetCityBean> getCityData(@Body RequestBody body);

//    @POST(Constant.ISSUED_INVITATION)
//    Observable<PublishBean> getIssuedInvitationData(@Body RequestBody body);

    @POST(Constant.FEEDBACK)
    Observable<ResponseBean> getFeedbackData(@Body RequestBody body);

    @POST(Constant.NEW_VERSION)
    Observable<About1qBean> getNew_Version(@Body RequestBody body);

    @POST(Constant.INVITE_DETAIL)
    Observable<InviteDetailBean> getInviteDetailData(@Body RequestBody body);

    @POST(Constant.INVITE_CANCEL)
    Observable<ResponseBean> getInviteCancelData(@Body RequestBody body);

    @POST(Constant.SET_USER_INFO)
    Observable<SetUserInfoBean> setUserInfoData(@Body RequestBody body);

    @POST(Constant.UPLOAD_IMG_URL)
    Observable<UploadImgBean> getUpLoadImgData(@Body RequestBody body);

    @POST(Constant.INVITER_WARN)
    Observable<InviterWarnBean> getInviterWarnData(@Body RequestBody body);

    @POST(Constant.REPLACE_PHONE)
    Observable<ResponseBean> getReplacePhoneData(@Body RequestBody body);

    @POST(Constant.GET_TYPE_LIST)
    Observable<GetTypeListBean> getTypeListData(@Body RequestBody body);

    @POST(Constant.ACTIVITY_LIST)
    Observable<ActivityListBean> getActivityListData(@Body RequestBody body);

    @POST(Constant.COLLECTION)
    Observable<ResponseBean> collectionData(@Body RequestBody body);

    @POST(Constant.COLLECTION_CANCEL)
    Observable<ResponseBean> collectionCancelData(@Body RequestBody body);

    @POST(Constant.COLLECTION_MY)
    Observable<ActivityListBean> collectionMyData(@Body RequestBody body);

    @POST(Constant.ACTIVITY_MY)
    Observable<ActivityMyBean> activityMyData(@Body RequestBody body);

    @POST(Constant.ACTIVITY_INDEX)
    Observable<ActivityIndexBean> activityIndexData(@Body RequestBody body);

    @POST(Constant.GET_USER_INFO)
    Observable<GetUserInfoBean> getUserInfoData(@Body RequestBody body);

    @POST(Constant.PUBLISH)
    Observable<PublishBean> publishData(@Body RequestBody body);

    @POST(Constant.MEMBER_LIST)
    Observable<MemberListBean> memberListData(@Body RequestBody body);

    @POST(Constant.INVITE_ACCEPT)
    Observable<ResponseBean> inviteAccept(@Body RequestBody body);

    @POST(Constant.GET_ACTIVITY_USER_INFO)
    Observable<GetActivityUserinfoBean> getActivityUserInfoData(@Body RequestBody body);

    @POST(Constant.ACTIVITY_USER_SET)
    Observable<ResponseBean> activityUserSetData(@Body RequestBody body);

    @POST(Constant.EX_CHANGE)
    Observable<ExChangeBean> exChangeData(@Body RequestBody body);

    @POST(Constant.NOTICE_LIST)
    Observable<NoticeListBean> noticeListData(@Body RequestBody body);

    @POST(Constant.NOTICE_DELETE)
    Observable<ResponseBean> noticeDeleteData(@Body RequestBody body);

    @POST(Constant.NOTICE_READ)
    Observable<ResponseBean> noticeReadData(@Body RequestBody body);

    @POST(Constant.INVITATION)
    Observable<InvitationBean> invitationData(@Body RequestBody body);

    @POST(Constant.LOG_OUT)
    Observable<ResponseBean> logOutData(@Body RequestBody body);

    @POST(Constant.USER_POINT_LIST)
    Observable<UserPointBean> userPointList(@Body RequestBody body);

    @POST(Constant.EXCHANGE_POINT)
    Observable<ResponseBean> exchangePoint(@Body RequestBody body);

    @POST(Constant.BILL_LIST)
    Observable<GetBillListBean> getBillListData(@Body RequestBody body);

    @POST(Constant.SET_PAYPAL_ACCOUNT)
    Observable<ResponseBean> setPaypalAccount(@Body RequestBody body);

    @POST(Constant.WITH_DRAWA)
    Observable<ResponseBean> whthDrawaData(@Body RequestBody body);

    @POST(Constant.SET_PAYMENT_PWD)
    Observable<ResponseBean> setPaymentPwd(@Body RequestBody body);

    @POST(Constant.MODIFY_PAYMENT_PWD)
    Observable<ResponseBean> modifyPaymentPwd(@Body RequestBody body);

    @POST(Constant.CHECK_PAYMENT_PWD)
    Observable<ResponseBean> checkPaymentPws(@Body RequestBody body);

    @POST(Constant.RESET_PAYMENT_PASS)
    Observable<ResponseBean> resetPaymentPassData(@Body RequestBody body);

    @POST(Constant.CHECK_RESET_CODE)
    Observable<ResponseBean> checkResetCodeData(@Body RequestBody body);

    @POST(Constant.WXPAY)
    Observable<WXPayBean> wxPay(@Body RequestBody body);

    @POST(Constant.ALIPAY)
    Observable<ResponseBean> alipay(@Body RequestBody body);

}
